package com.xspace.android.imcommon.interfaces;
import com.xspace.android.imcommon.interfaces.PushListAidl;
import com.xspace.android.imcommon.interfaces.PushAidl;
import com.xspace.android.imcommon.interfaces.LoginCallBack;
import com.xspace.android.imcommon.interfaces.ChatSnapCallback;
import com.xspace.android.imcommon.interfaces.IMsgCallback;
import com.xspace.android.imcommon.interfaces.ChatAidl;
import com.xspace.android.imcommon.interfaces.MucChatAidl;
import com.xspace.android.imcommon.interfaces.FriendCallback;
import com.xspace.android.imcommon.interfaces.FriendAidl;
import com.xspace.android.imcommon.interfaces.PushCallback;
import com.xspace.android.imcommon.interfaces.ChatCallback;
import com.xspace.android.imcommon.interfaces.SMSCallback;
import com.xspace.android.imcommon.interfaces.SmsListAidl;
import com.xspace.android.imcommon.interfaces.SmsBeanAidl;
import com.xspace.android.imcommon.fileupload.IUploadCallback;
import com.xspace.android.imcommon.interfaces.ChatListAidl;
interface IMessage {
      //登录
       void login(in int iocId,in String userName,in String password,in String host,in int port,in String url,in LoginCallBack mLoginCallBack);
        //登出
       void logOut();
      //推送信息增加或修改
       void saveOrUpdatePush(in String owner,in PushAidl pushMsg);
       /**修改推送未读为已读**/
       void updateUnReadPushCount(in String owner,in PushAidl pushMsg);
      //推送信息列表查询
       void initPush(in PushCallback mPushCallback);
       void initChat(in ChatCallback mChatCallback);
       PushListAidl queryPushList(in String owner,in String channelName);
      //推送信息子列表查询
       PushListAidl queryPushChildList(in String mPushUserID,in String mPlatformID,in String owner,in String sendtimeStart,in String sendtimeEnd,String key);
       
       //推送信息子列表查询
       PushListAidl queryPushChildAllList(in String owner,in String channelName);
       //平台类型
       List<String> getMsgBodyTypeArr();
       
       void deleteSinglePushMsg(in int msgId);
       
       void deletePushMsg(in String mPlatformId,in  String pushUserID, in String barejid);
       
       //聊天记录
       void initImUser(in String owner,in ChatSnapCallback callback, in int pageSize);
       void queryChatMsgSnaps();
       boolean deleteImUser(in String userId);
       void unImUser();
       void updateUserInfo(in String userId,in String userName,in String userHead,in int whiteStatus);
       void updateUserUnread(in int userId,in int unread);
       void initSendMessage(in IMsgCallback callback,in String userName,in String toUserName);
       boolean deleteMsg(in int msgId);
       
       void unSendMessage();
       void sendMessage(in ChatAidl info);
       void queryMsgList(in int startRecord,in int pageSize);
       void queryHistoryMsgList();
       
       void queryFriend(in String owner,in String userId,in FriendCallback mFriendCallback);  
       void queryListFriend(in String userId,in FriendCallback mFriendCallback);
       void queryMapFriend(in String userId,in FriendCallback mFriendCallback);
       
       void saveOrUpdateFriend(in FriendAidl info,in String userId);
      //sms
       void initSms(in SMSCallback mSMSCallback);
       void unReadSmsQury(in String jid);
       SmsListAidl querySmsList(in String smsType,in String jid);
       void deleteSmsInfo(in String smsType,in int id);
       void updateSmsRead(in String smsType,in String  userId);
       boolean  isNotifyAlert();
       boolean  isNotifyvibation();
       boolean  isNotifyOpen();
       boolean  setNotifyAlert(in boolean flag);
       boolean  setNotifyvibation(in boolean flag);
       boolean  setNotifyOpen(in boolean flag);
       boolean addFriend(in String mBarejid, in String mName, in String mMobile);
       boolean deleteFriend(in String mBarejid);
        void getAllServerFriends();
        //muc room
        String createMucRoom(in String nickname,in String userId);
        void sendMucMsg(in MucChatAidl info);
        void inviteFriendToRoom(in String roomId,in String userId,in String reason);
        void kickFriendFromRoom(in String roomId,in String userId,in String reason);
        void joinToRoom(in String roomId,in String userId,String nickname);
        void exitMucRoom(in String roomId);
        
        //file upload
        int getUploadStatus(in long id);
        float getUploadProgress(in long id);
	    long getUploaded(in long id);
	    void pauseUpload(in long id);
	    void resumeUpload(in long id);
	    void cancelUpload(in long id);
	    void fileUpload(in ChatListAidl uploadList,in IUploadCallback callback);
        void resetCallback(in long id,in IUploadCallback callback);
        ChatListAidl queryUploadList(in String fromUserId,in String toUserId);
        void deleteFileMsg(in long id);

}